package com.whfc.emp.service;

import com.whfc.common.exception.BizException;
import com.whfc.common.result.PageData;
import com.whfc.emp.dto.*;

import java.util.Date;
import java.util.List;

/**
 * @ClasssName AppEmpDataAnaService
 * @Description 数据分析
 * @Author hw
 * @Date 2020/12/29 11:33
 * @Version 1.0
 */
public interface AppEmpDataAnaService {

    /**
     * 人员分析-获取人员分析数据
     *
     * @param deptId
     * @return
     */
    AppEmpDataDTO getEmpData(Integer deptId) throws BizException;

    /**
     * 人员分析-获取最近出勤人员
     *
     * @param deptId
     * @return
     */
    PageData<AppAnaEmpDTO> getRecentAttendEmp(Integer deptId) throws BizException;

    /**
     * 人员分析-获取最近进场人员
     *
     * @param deptId
     * @return
     */
    PageData<AppAnaEmpDTO> getRecentEnterEmp(Integer deptId) throws BizException;

    /**
     * 班组统计
     *
     * @param deptId
     * @return
     * @throws BizException
     */
    AppEmpStatisticsDTO getGroupEmp(Integer deptId) throws BizException;

    /**
     * 合作单位统计
     *
     * @param deptId
     * @return
     * @throws BizException
     */
    AppEmpStatisticsDTO getCorpEmp(Integer deptId) throws BizException;

    /**
     * 工种统计
     *
     * @param deptId
     * @return
     * @throws BizException
     */
    AppEmpStatisticsDTO getWorkEmp(Integer deptId) throws BizException;

    /**
     * 人员分析-每天不同班组出勤情况
     *
     * @param deptId
     * @param date
     * @return
     * @throws BizException
     */
    List<AppEmpAttendGroupDTO> getWordDayAttendData(Integer deptId, Date date) throws BizException;

    /**
     * 人员日志
     *
     * @param deptId
     * @param date
     * @return
     * @throws BizException
     */
    AppEmpLogDTO getEmpLog(Integer deptId, Date date) throws BizException;

    AppEmpSpotDataDTO getSpotEmpData(Integer deptId);
}
